01. Introduction to FSND Capstone

So you think you're ready for the Capstone?

So You Think You're Ready for Capstone

Welcome to Capstone! Before we dive into the project, take stock of all you've learned through the course of this nanodegree. In this Capstone project, you'll be challenged to use all of the concepts and the skills taught in the courses to build an API from start to finish and host it.

Below are the skills you've learned summarized. Note which elements feel comfortable for you and which you may feel less sure of. Those that you are comfortable with, consider this an opportunity to confirm that your ability with that skill. For those that you are less confident in, this is an opportunity to reinforce those skills and walk away very confident in them.

  • Coding in Python 3
  • Relational Database Architecture
  • Modeling Data Objects with SQLAlchemy
  • Internet Protocols and Communication
  • Developing a Flask API
  • Authentication and Access
  • Authentication with Auth0
  • Authentication in Flask
  • Role-Based Access Control (RBAC)
  • Testing Flask Applications
  • Deploying Applications

Using This Lesson

In various parts of this lesson, you can just read through the information or try it out using a simple sample project that will be linked. Take the path that works best for you and reference the information whenever you need to.

With our toolbox in hand, let's see what we're getting into with this Capstone!

Rubric Overview

Rubric

The rubric includes five sections that map to each of the four courses you took in Nanodegree and a fifth regarding Code Quality & Documentation. Before starting the project, ensure you've reviewed the rubric and are clear on the expectations. Review it again before submitting your capstone.

General Specifications

For the Capstone, you'll notice that the project has two sets of Specifications . The Capstone is domain-unspecific, meaning that you can choose to create your API with regards to any topic. You'll build it from the ground up - from the data model to the users and permissions. We purposefully included this section to challenge you to choose some data and think through how it should be modeled and made accessible via your API.

The general specifications do include requirements for the complexity of the application. For instance, you must include at least two classes in your models. You should feel free to exceed these specifications if you are so inspired!

(Optional) Casting Agency Specs

(Optional) Casting Agency Specs

In addition to the general specs, we provided specifications for a Casting Agency project that meets the general specs. It details exactly how the API should be structured: models, attributes, endpoints, roles, permissions, and tests. If you find yourself stumped about the content of your API, feel free to use the Casting Agency specs or modify them as you wish!

Deploying and Hosting Your Capstone Project

Deploying and Hosting Your Capstone

During the last course, you learned how to containerize your application with Docker and deploy it to AWS EKS. In this Capstone, we'll introduce you to a new tool to deploy your application - Heroku. Heroku is a cloud platform you can use for free and is a popular tool for smaller companies, those not using AWS, and personal projects.

Prior to starting the Capstone, we'll talk about Heroku, learn how to configure an application for Heroku and deploy it to the cloud platform. Let's go!